iT邦幫忙

2021 iThome 鐵人賽

DAY 22
0

GenericAPIView 介紹

GenericAPIView 是 APIView 的延伸,它擁有 APIView的功能,且另外增加一些實用的作用。

基本設定

  • queryset view 獲取之物件
  • serializer_class view 使用之serializers
  • lookup_field field 供程式查找 model

基本方法

  • get_queryset(self) 回傳所有資料
  • get_object(self) 取得特定物件資料

Mixins 介紹

在 GenericAPIView 當中沒有的功能,我們亦可以用 Mixins 進行擴充
DRF 內建常用的有以下之 Mixins,各提供不同的功能:

  • ListModelMixin
  • CreateModelMixin
  • RetrieveModelMixin
  • UpdateModelMixin
  • DestroyModelMixin

實作

我們可以這樣來使用 GenericAPIView 和 Mixins

class ProductCreateAPIView(mixins.ListModelMixin,
                             mixins.CreateModelMixin,
                             generics.GenericAPIView):

    queryset = Product.objects.all()
    serializer_class =ProductSerializer

    def get(self, request, *args, **kwargs):
        return self.list(request, *args, **kwargs)

    def post(self, request, *args, **kwargs):
        return self.create(request, *args, **kwargs)

結語

熟悉 GenericAPIView 和 Mixins 可以讓我們像是積木一樣拼裝出我們需要的功能,常見常使用的功能可以透過這些class 有效率的開發。


上一篇
[Day 21] - Django-REST-Framework APIView 介紹 -- 處理 HTTP Method 的好幫手
下一篇
[Day 23] - Django-REST-Framework Concrete View Classes 介紹
系列文
使用Django Rest Framework, Docker, Docker Compose 製作後端服務應用30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言